华为云CCE集群纳管和验证GPU V100裸金属服务器的解决方案

您所在的位置:网站首页 k8s gpu监控 华为云CCE集群纳管和验证GPU V100裸金属服务器的解决方案

华为云CCE集群纳管和验证GPU V100裸金属服务器的解决方案

2023-07-12 11:55| 来源: 网络整理| 查看: 265

【摘要】 解决如何将GPU V100裸金属服务器纳管至已创建好的华为云CCE集群, 并且在集群安装gpu-device-plugin插件, 根据pytorch2.01镜像创建pod,验证cuda是狗可用。 本文给出端到端详解的步骤, 助力读者快速部署业务。

0. 前言

解决如何将GPU V100裸金属服务器纳管至已创建好的华为云CCE集群, 并且在集群安装gpu-device-plugin插件, 根据pytorch2.01镜像创建pod,验证cuda是否可用。 本文给出端到端详解的步骤, 助力读者快速部署业务。

1. 资源准备

(1) 在华为云CCE购买集群, 需要选择网络模型为VPC网络;

(2) 在华为云ModelArts购买GPU V100裸金属服务器, 需要联系客户经理或提ModelArts工单申请相关权限;

(3) 当前GPU V100纳管至CCE集群,需要使用的IMS镜像为euler2.9_x86_nosdi_uefi_ib_40G_20230210v1,需要联系客户经理或提ModelArts工单申请。

2. CCE集群纳管节点-纳管V100裸金属服务器

在CCE Console界面选择纳管节点,选择对应的V100裸金属服务器, 需要注意的配置如下

(1)  容器引擎选择Docker;

(2) 操作系统选择私有镜像euler2.9_x86_nosdi_uefi_ib_40G_20230210v1;

(3) 增加k8s标签: accelerator:nvidia-v100  

纳管过程涉及对V100裸金属服务器更换重装操作系统,预计时间在20分钟左右。

3. CCE集群安装gpu-device-plugin插件

gpu-device-plugin(原gpu-beta)插件是支持在容器中使用GPU显卡的设备管理插件,集群中使用GPU节点时必须安装本插件。

详细介绍可以参考: gpu-device-plugin(原gpu-beta)_云容器引擎 CCE_用户指南_插件_华为云

(1) 前置条件: 必须在BMS节点上打上标签accelerator:nvidia-v100,方法如下(若步骤2纳管节点时已增加,则可略过)

kubectl label nodes 192.168.0.242 accelerator:nvidia-v100 //192.168.0.242为裸金属服务器私有IP

若无法执行kubectl,可以配置/root/.kube/config后执行。

(2) 在CCE console插件管理-选择gpu-device-plugin插件进行安装, 安装完成后可看到实例:

可以在CCE集群中对应的A100裸金属服务器节点上执行以下命令,进一步验证GPU插件是否安装成功

在GPU裸金属服务器中执行验证安装是否成功:

cd /opt/cloud/cce/nvidia/bin && ./nvidia-smi

或在容器中执行如下命令验证:

cd /usr/local/nvidia/bin && ./nvidia-smi

注意: 该gpu插件仅安装nvidia驱动,并未安装cuda组件,在宿主机若要开发gpu应用仍需自行安装cuda; 容器场景则不涉及。

至此, CCE集群已经成功纳管V100 GPU裸金属服务器,并且可以正常使用k8s pod等资源使用裸金属的GPU算力。

该插件nvidia驱动安装日志请参考: cat /opt/cloud/cce/nvidia/nvidia_installer.log

4. 方案验证: CCE集群中创建pytorch2.0.1 pod验证CUDA的可用性

(1) pytorch2.01镜像准备, 拉取pytorch2.0.1镜像, 若无法拉取需要在V100裸金属服务器上绑定弹性IP,使其具备外网访问权限:

docker pull pytorch/pytorch:2.0.0-cuda11.7-cudnn8-devel

(2) 创建gpu类deployment, 详细使用如下yaml, 可以直接挂在V100的8张GPU卡:

apiVersion: apps/v1 kind: Deployment metadata: name: v100-gpu-torch namespace: default spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: v100-gpu-torch version: v1 template: metadata: labels: app: v100-gpu-torch version: v1 spec: containers: - command: - sleep - "200000000000000000000000" image: pytorch/pytorch:2.0.0-cuda11.7-cudnn8-devel imagePullPolicy: IfNotPresent name: container-1 resources: limits: cpu: 250m memory: 512Mi nvidia.com/gpu: "8" requests: cpu: 250m memory: 512Mi nvidia.com/gpu: "8" dnsPolicy: ClusterFirst imagePullSecrets: - name: default-secret restartPolicy: Always

(3) 查看deployment和pod创建状态, 成功的状态如下:

(4) 进入pytorch2.0.1容器, 验证CUDA的可用性:

至此已经验证完成,在已纳管V100 GPU裸金属服务器的CCE集群中, 安装gpu-device-plugin插件后, 可以创建pod正常使用V100的GPU算力。

注意事项:

如果裸金属服务器和想挂载的EVS云硬盘不在一个可用区,是无法创建pod+evs卷调度到该裸金属上的, 二者必须保证在同一个可用区。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3